#include "widget.h"
#include "ui_widget.h"
#include <QDebug>
#include <QFile>
#include <QFileDialog>
#include <QTextCodec>

#include "dxf.h"

Widget::Widget(QWidget* parent) : QWidget(parent), ui(new Ui::Widget)
{
    ui->setupUi(this);

    // 点击选取文件按钮，弹出文件对话框
    connect(ui->pushButton, SIGNAL(clicked()), this, SLOT(read_file()));
    // connect(ui->pushButton, SIGNAL(clicked()), this, SLOT(show_msg()));
}

Widget::~Widget()
{
    delete ui;
}

void Widget::show_msg(void)
{
    qDebug() << "yes";
}

void Widget::read_file(void)
{
    QString path = QFileDialog::getOpenFileName(this, "打开文件", "../Doc/");
    int     section_count = 0;

    // 选择路径显示
    ui->lineEdit->setText(path);

    dxf dxf_file(path);
    dxf_file.file_open();

    // 这里，采取用类方式读取
    while (1) {
        if (false == dxf_file.dxf_read_couple())
            break;
        if (true == dxf_file.is_section())
            section_count++;
    }
    dxf_file.file_close();
    // file.close();
    ui->textEdit->append(QString::number(section_count));

    // 编码格式类，先判断格式，再转到具体格式
    // QTextCodec *codec = QTextCodec::codecForName("gbk");

    // // 读取内容，放到text中，默认utf-8格式
    // QFile file(path);
    // // 设置打开方式
    // file.open(QIODevice::ReadOnly);

    // // 读取组码，组码最多三位数字，不足的在高位补空格

    // QByteArray descriptionData, groupCodeData;
    // QString description, groupCode;

    // int groupCodeInt;

    // while(!file.atEnd())
    // {
    //     groupCodeData = file.readLine();
    //     groupCode = QString::fromUtf8(groupCodeData);
    //     groupCode.remove(QRegExp("\\s"));

    //     descriptionData = file.readLine();
    //     description = QString::fromUtf8(descriptionData);

    //     groupCodeInt = groupCode.toInt();

    //     //
    //     先做一个DXF分析的功能，将其中使用的图元识别出来，如果提取数据处理数据以后再重构代码
    //     if(DXF_GPCODE_OBJECT == groupCodeInt)
    //         ui->textEdit->append(description);
    // }

    // file.close();
    // // ui->textEdit->setText(codec->toUnicode(array));
}
